package com.vic.designpattern.patterns.c_behavioral.state.demo3;

/**
 * 优秀状态
 * 分数大于等于90分为优秀状态
 * @author victor
 */
public class HighState extends AbstractState {

    // 将上一次状态传递过来
    public HighState(AbstractState state) {
        // 实例化环境类
        hj = state.hj;
        stateName = "优秀";
        score = state.score;
    }

    // 调整 hj 中的 state，并把当前状态this传递到下一个状态，目的是传递 环境 和 分数
    @Override
    public void adjustState() {
        if(score >= 60 && score < 90) {
            hj.setState(new MiddleState(this));
        } else if(score < 60) {
            hj.setState(new LowState(this));
        }
    }
}
